package com.itheima.a01mycollection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class A05_CollectionDemo5 {
    public static void main(String[] args) {
         /*
            迭代器的细节注意点：
                3.循环中只能用一次next方法
                4.迭代器遍历时，不能用集合的方法进行增加或者删除
                注意点4暂时当作一个结论先行记忆，在今天我们会讲解源码详细的再来分析
                如果我实在要删除，那么可以用迭代器提供的remove方法进行删除
                如果我要添加，暂时没有方法
        */

        //1.创建集合并添加元素
        Collection<String> coll = new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        coll.add("eee");

        //2.获取一个迭代器对象
        //迭代器就好比是一个箭头，默认指向集合的0索引处
        Iterator<String> it = coll.iterator();
        //3.利用循环不断的去获取集合中的每一个元素
        while (it.hasNext()) {
            //4.next方法的两件事情：获取元素并移动指针
            String str = it.next();
            if("bbb".equals(str)){
                //coll.remove("bbb");//ConcurrentModificationException
                it.remove();
            }
        }
        System.out.println(coll);


        /*Iterator<String> it2 = coll.iterator();
        while (it2.hasNext()){
            System.out.println(it2.next());//aaa ccc eee
            System.out.println(it2.next());//bbb ddd NoSuchElementException
        }*/
    }
}
